<?xml version='1.0' encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html lang="en" xml:lang="en" xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <link href="cpip.css" rel="stylesheet" type="text/css" />
    <title>File: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/topology.h</title>
  </head>
  <body>
    <h1>File: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/topology.h</h1>
    <p>Green shading in the line number column
means the source is part of the translation unit, red means it is conditionally excluded.
Highlighted line numbers link to the translation unit page. Highlighted macros link to
the macro page.</p>
    <pre><a name="1" /><span class="True">       1:</span> <span class="k">/*</span>
<a name="2" /><span class="True">       2:</span> <span class="k"> * Written by: Matthew Dobson, IBM Corporation</span>
<a name="3" /><span class="True">       3:</span> <span class="k"> *</span>
<a name="4" /><span class="True">       4:</span> <span class="k"> * Copyright (C) 2002, IBM Corp.</span>
<a name="5" /><span class="True">       5:</span> <span class="k"> *</span>
<a name="6" /><span class="True">       6:</span> <span class="k"> * All rights reserved.</span>
<a name="7" /><span class="True">       7:</span> <span class="k"> *</span>
<a name="8" /><span class="True">       8:</span> <span class="k"> * This program is free software; you can redistribute it and/or modify</span>
<a name="9" /><span class="True">       9:</span> <span class="k"> * it under the terms of the GNU General Public License as published by</span>
<a name="10" /><span class="True">      10:</span> <span class="k"> * the Free Software Foundation; either version 2 of the License, or</span>
<a name="11" /><span class="True">      11:</span> <span class="k"> * (at your option) any later version.</span>
<a name="12" /><span class="True">      12:</span> <span class="k"> *</span>
<a name="13" /><span class="True">      13:</span> <span class="k"> * This program is distributed in the hope that it will be useful, but</span>
<a name="14" /><span class="True">      14:</span> <span class="k"> * WITHOUT ANY WARRANTY; without even the implied warranty of</span>
<a name="15" /><span class="True">      15:</span> <span class="k"> * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or</span>
<a name="16" /><span class="True">      16:</span> <span class="k"> * NON INFRINGEMENT.  See the GNU General Public License for more</span>
<a name="17" /><span class="True">      17:</span> <span class="k"> * details.</span>
<a name="18" /><span class="True">      18:</span> <span class="k"> *</span>
<a name="19" /><span class="True">      19:</span> <span class="k"> * You should have received a copy of the GNU General Public License</span>
<a name="20" /><span class="True">      20:</span> <span class="k"> * along with this program; if not, write to the Free Software</span>
<a name="21" /><span class="True">      21:</span> <span class="k"> * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.</span>
<a name="22" /><span class="True">      22:</span> <span class="k"> *</span>
<a name="23" /><span class="True">      23:</span> <span class="k"> * Send feedback to &lt;colpatch@us.ibm.com&gt;</span>
<a name="24" /><span class="True">      24:</span> <span class="k"> */</span>
<a name="25" /><span class="Maybe">      25:</span> <span class="f">#</span><span class="n">ifndef</span> <a href="cpu.c_macros_ref.html#_X0FTTV9YODZfVE9QT0xPR1lfSF8w"><span class="b">_ASM_X86_TOPOLOGY_H</span></a>
<a name="26" /><span class="Maybe">      26:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_ref.html#_X0FTTV9YODZfVE9QT0xPR1lfSF8w"><span class="b">_ASM_X86_TOPOLOGY_H</span></a>
<a name="27" /><span class="Maybe">      27:</span> 
<a name="28" /><span class="False">      28:</span> <span class="f">#</span><span class="n">ifdef</span> <span class="b">CONFIG_X86_32</span>
<a name="29" /><span class="False">      29:</span> <span class="f">#</span> <span class="n">ifdef</span> <a href="cpu.c_macros_ref.html#_Q09ORklHX1g4Nl9IVF8w"><span class="b">CONFIG_X86_HT</span></a>
<a name="30" /><span class="False">      30:</span> <span class="f">#</span>  <span class="n">define</span> <a href="cpu.c_macros_ref.html#_RU5BQkxFX1RPUE9fREVGSU5FU18w"><span class="b">ENABLE_TOPO_DEFINES</span></a>
<a name="31" /><span class="False">      31:</span> <span class="f">#</span> <span class="n">endif</span>
<a name="32" /><span class="Maybe">      32:</span> <span class="f">#</span><span class="n">else</span>
<a name="33" /><span class="Maybe">      33:</span> <span class="f">#</span> <span class="n">ifdef</span> <a href="cpu.c_macros_ref.html#_Q09ORklHX1NNUF8w"><span class="b">CONFIG_SMP</span></a>
<a name="34" /><span class="Maybe">      34:</span> <span class="f">#</span>  <span class="n">define</span> <a href="cpu.c_macros_ref.html#_RU5BQkxFX1RPUE9fREVGSU5FU18w"><span class="b">ENABLE_TOPO_DEFINES</span></a>
<a name="35" /><span class="Maybe">      35:</span> <span class="f">#</span> <span class="n">endif</span>
<a name="36" /><span class="Maybe">      36:</span> <span class="f">#</span><span class="n">endif</span>
<a name="37" /><span class="Maybe">      37:</span> 
<a name="38" /><span class="Maybe">      38:</span> <span class="k">/*</span>
<a name="39" /><span class="Maybe">      39:</span> <span class="k"> * to preserve the visibility of NUMA_NO_NODE definition,</span>
<a name="40" /><span class="Maybe">      40:</span> <span class="k"> * moved to there from here.  May be used independent of</span>
<a name="41" /><span class="Maybe">      41:</span> <span class="k"> * CONFIG_NUMA.</span>
<a name="42" /><span class="Maybe">      42:</span> <span class="k"> */</span>
<a name="43" /><span class="Maybe">      43:</span> <span class="f">#</span><span class="n">include</span> <span class="f">&lt;</span><span class="b">linux</span><span class="f">/</span><span class="b">numa</span><span class="f">.</span><span class="b">h</span><span class="f">&gt;</span>
<a name="44" /><span class="Maybe">      44:</span> 
<a name="45" /><span class="Maybe">      45:</span> <span class="f">#</span><span class="n">ifdef</span> <a href="cpu.c_macros_ref.html#_Q09ORklHX05VTUFfMA__"><span class="b">CONFIG_NUMA</span></a>
<a name="46" /><span class="Maybe">      46:</span> <span class="f">#</span><span class="n">include</span> <span class="f">&lt;</span><span class="b">linux</span><span class="f">/</span><span class="b">cpumask</span><span class="f">.</span><span class="b">h</span><span class="f">&gt;</span>
<a name="47" /><span class="Maybe">      47:</span> 
<a name="48" /><span class="Maybe">      48:</span> <span class="f">#</span><span class="n">include</span> <span class="f">&lt;</span><span class="m">asm</span><span class="f">/</span><span class="b">mpspec</span><span class="f">.</span><span class="b">h</span><span class="f">&gt;</span>
<a name="49" /><span class="Maybe">      49:</span> 
<a name="50" /><span class="Maybe">      50:</span> <span class="k">/* Mappings between logical cpu number and node number */</span>
<a name="51" /><span class="Maybe">      51:</span> <a href="cpu.c_macros_ref.html#_REVDTEFSRV9FQVJMWV9QRVJfQ1BVXzA_"><span class="b">DECLARE_EARLY_PER_CPU</span></a><span class="f">(</span><span class="m">int</span><span class="f">,</span> <span class="b">x86_cpu_to_node_map</span><span class="f">)</span><span class="f">;</span>
<a name="52" /><span class="Maybe">      52:</span> 
<a name="53" /><span class="False">      53:</span> <span class="f">#</span><span class="n">ifdef</span> <span class="b">CONFIG_DEBUG_PER_CPU_MAPS</span>
<a name="54" /><span class="False">      54:</span> <span class="k">/*</span>
<a name="55" /><span class="False">      55:</span> <span class="k"> * override generic percpu implementation of cpu_to_node</span>
<a name="56" /><span class="False">      56:</span> <span class="k"> */</span>
<a name="57" /><span class="False">      57:</span> <span class="m">extern</span> <span class="m">int</span> <span class="b">__cpu_to_node</span><span class="f">(</span><span class="m">int</span> <span class="b">cpu</span><span class="f">)</span><span class="f">;</span>
<a name="58" /><span class="False">      58:</span> <span class="f">#</span><span class="n">define</span> <span class="b">cpu_to_node</span> <span class="b">__cpu_to_node</span>
<a name="59" /><span class="False">      59:</span> 
<a name="60" /><span class="False">      60:</span> <span class="m">extern</span> <span class="m">int</span> <span class="b">early_cpu_to_node</span><span class="f">(</span><span class="m">int</span> <span class="b">cpu</span><span class="f">)</span><span class="f">;</span>
<a name="61" /><span class="False">      61:</span> 
<a name="62" /><span class="Maybe">      62:</span> <span class="f">#</span><span class="n">else</span>    <span class="k">/* !CONFIG_DEBUG_PER_CPU_MAPS */</span>
<a name="63" /><span class="Maybe">      63:</span> 
<a name="64" /><span class="Maybe">      64:</span> <span class="k">/* Same function but used if called before per_cpu areas are setup */</span>
<a name="65" /><span class="Maybe">      65:</span> <span class="m">static</span> <span class="m">inline</span> <span class="m">int</span> <span class="b">early_cpu_to_node</span><span class="f">(</span><span class="m">int</span> <span class="b">cpu</span><span class="f">)</span>
<a name="66" /><span class="Maybe">      66:</span> <span class="f">{</span>
<a name="67" /><span class="Maybe">      67:</span>     <span class="m">return</span> <a href="cpu.c_macros_ref.html#_ZWFybHlfcGVyX2NwdV8w"><span class="b">early_per_cpu</span></a><span class="f">(</span><span class="b">x86_cpu_to_node_map</span><span class="f">,</span> <span class="b">cpu</span><span class="f">)</span><span class="f">;</span>
<a name="68" /><span class="Maybe">      68:</span> <span class="f">}</span>
<a name="69" /><span class="Maybe">      69:</span> 
<a name="70" /><span class="Maybe">      70:</span> <span class="f">#</span><span class="n">endif</span> <span class="k">/* !CONFIG_DEBUG_PER_CPU_MAPS */</span>
<a name="71" /><span class="Maybe">      71:</span> 
<a name="72" /><span class="Maybe">      72:</span> <span class="k">/* Mappings between node number and cpus on that node. */</span>
<a name="73" /><span class="Maybe">      73:</span> <span class="m">extern</span> <span class="b">cpumask_var_t</span> <span class="b">node_to_cpumask_map</span><span class="f">[</span><a href="cpu.c_macros_ref.html#_TUFYX05VTU5PREVTXzA_"><span class="b">MAX_NUMNODES</span></a><span class="f">]</span><span class="f">;</span>
<a name="74" /><span class="Maybe">      74:</span> 
<a name="75" /><span class="False">      75:</span> <span class="f">#</span><span class="n">ifdef</span> <span class="b">CONFIG_DEBUG_PER_CPU_MAPS</span>
<a name="76" /><span class="False">      76:</span> <span class="m">extern</span> <span class="m">const</span> <span class="m">struct</span> <span class="b">cpumask</span> <span class="f">*</span><span class="b">cpumask_of_node</span><span class="f">(</span><span class="m">int</span> <span class="b">node</span><span class="f">)</span><span class="f">;</span>
<a name="77" /><span class="Maybe">      77:</span> <span class="f">#</span><span class="n">else</span>
<a name="78" /><span class="Maybe">      78:</span> <span class="k">/* Returns a pointer to the cpumask of CPUs on Node &apos;node&apos;. */</span>
<a name="79" /><span class="Maybe">      79:</span> <span class="m">static</span> <span class="m">inline</span> <span class="m">const</span> <span class="m">struct</span> <span class="b">cpumask</span> <span class="f">*</span><span class="b">cpumask_of_node</span><span class="f">(</span><span class="m">int</span> <span class="b">node</span><span class="f">)</span>
<a name="80" /><span class="Maybe">      80:</span> <span class="f">{</span>
<a name="81" /><span class="Maybe">      81:</span>     <span class="m">return</span> <span class="b">node_to_cpumask_map</span><span class="f">[</span><span class="b">node</span><span class="f">]</span><span class="f">;</span>
<a name="82" /><span class="Maybe">      82:</span> <span class="f">}</span>
<a name="83" /><span class="Maybe">      83:</span> <span class="f">#</span><span class="n">endif</span>
<a name="84" /><span class="Maybe">      84:</span> 
<a name="85" /><span class="Maybe">      85:</span> <span class="m">extern</span> <span class="m">void</span> <span class="b">setup_node_to_cpumask_map</span><span class="f">(</span><span class="m">void</span><span class="f">)</span><span class="f">;</span>
<a name="86" /><span class="Maybe">      86:</span> 
<a name="87" /><span class="Maybe">      87:</span> <span class="k">/*</span>
<a name="88" /><span class="Maybe">      88:</span> <span class="k"> * Returns the number of the node containing Node &apos;node&apos;. This</span>
<a name="89" /><span class="Maybe">      89:</span> <span class="k"> * architecture is flat, so it is a pretty simple function!</span>
<a name="90" /><span class="Maybe">      90:</span> <span class="k"> */</span>
<a name="91" /><span class="Maybe">      91:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_ref.html#_cGFyZW50X25vZGVfMA__"><span class="b">parent_node</span></a><span class="f">(</span><span class="b">node</span><span class="f">)</span> <span class="f">(</span><span class="b">node</span><span class="f">)</span>
<a name="92" /><span class="Maybe">      92:</span> 
<a name="93" /><span class="Maybe">      93:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_ref.html#_cGNpYnVzX3RvX25vZGVfMA__"><span class="b">pcibus_to_node</span></a><span class="f">(</span><span class="b">bus</span><span class="f">)</span> <span class="b">__pcibus_to_node</span><span class="f">(</span><span class="b">bus</span><span class="f">)</span>
<a name="94" /><span class="Maybe">      94:</span> 
<a name="95" /><span class="Maybe">      95:</span> <span class="m">extern</span> <span class="m">int</span> <span class="b">__node_distance</span><span class="f">(</span><span class="m">int</span><span class="f">,</span> <span class="m">int</span><span class="f">)</span><span class="f">;</span>
<a name="96" /><span class="Maybe">      96:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_ref.html#_bm9kZV9kaXN0YW5jZV8w"><span class="b">node_distance</span></a><span class="f">(</span><span class="b">a</span><span class="f">,</span> <span class="b">b</span><span class="f">)</span> <span class="b">__node_distance</span><span class="f">(</span><span class="b">a</span><span class="f">,</span> <span class="b">b</span><span class="f">)</span>
<a name="97" /><span class="Maybe">      97:</span> 
<a name="98" /><span class="False">      98:</span> <span class="f">#</span><span class="n">else</span> <span class="k">/* !CONFIG_NUMA */</span>
<a name="99" /><span class="False">      99:</span> 
<a name="100" /><span class="False">     100:</span> <span class="m">static</span> <span class="m">inline</span> <span class="m">int</span> <span class="b">numa_node_id</span><span class="f">(</span><span class="m">void</span><span class="f">)</span>
<a name="101" /><span class="False">     101:</span> <span class="f">{</span>
<a name="102" /><span class="False">     102:</span>     <span class="m">return</span> <span class="c">0</span><span class="f">;</span>
<a name="103" /><span class="False">     103:</span> <span class="f">}</span>
<a name="104" /><span class="False">     104:</span> <span class="k">/*</span>
<a name="105" /><span class="False">     105:</span> <span class="k"> * indicate override:</span>
<a name="106" /><span class="False">     106:</span> <span class="k"> */</span>
<a name="107" /><span class="False">     107:</span> <span class="f">#</span><span class="n">define</span> <span class="b">numa_node_id</span> <span class="b">numa_node_id</span>
<a name="108" /><span class="False">     108:</span> 
<a name="109" /><span class="False">     109:</span> <span class="m">static</span> <span class="m">inline</span> <span class="m">int</span> <span class="b">early_cpu_to_node</span><span class="f">(</span><span class="m">int</span> <span class="b">cpu</span><span class="f">)</span>
<a name="110" /><span class="False">     110:</span> <span class="f">{</span>
<a name="111" /><span class="False">     111:</span>     <span class="m">return</span> <span class="c">0</span><span class="f">;</span>
<a name="112" /><span class="False">     112:</span> <span class="f">}</span>
<a name="113" /><span class="False">     113:</span> 
<a name="114" /><span class="False">     114:</span> <span class="m">static</span> <span class="m">inline</span> <span class="m">void</span> <span class="b">setup_node_to_cpumask_map</span><span class="f">(</span><span class="m">void</span><span class="f">)</span> <span class="f">{</span> <span class="f">}</span>
<a name="115" /><span class="False">     115:</span> 
<a name="116" /><span class="Maybe">     116:</span> <span class="f">#</span><span class="n">endif</span>
<a name="117" /><span class="Maybe">     117:</span> 
<a name="118" /><span class="Maybe">     118:</span> <span class="f">#</span><span class="n">include</span> <span class="f">&lt;</span><span class="m">asm</span><span class="f">-</span><span class="b">generic</span><span class="f">/</span><span class="b">topology</span><span class="f">.</span><span class="b">h</span><span class="f">&gt;</span>
<a name="119" /><span class="Maybe">     119:</span> 
<a name="120" /><span class="Maybe">     120:</span> <span class="m">extern</span> <span class="m">const</span> <span class="m">struct</span> <span class="b">cpumask</span> <span class="f">*</span><span class="b">cpu_coregroup_mask</span><span class="f">(</span><span class="m">int</span> <span class="b">cpu</span><span class="f">)</span><span class="f">;</span>
<a name="121" /><span class="Maybe">     121:</span> 
<a name="122" /><span class="Maybe">     122:</span> <span class="f">#</span><span class="n">ifdef</span> <a href="cpu.c_macros_ref.html#_RU5BQkxFX1RPUE9fREVGSU5FU18w"><span class="b">ENABLE_TOPO_DEFINES</span></a>
<a name="123" /><span class="Maybe">     123:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_ref.html#_dG9wb2xvZ3lfcGh5c2ljYWxfcGFja2FnZV9pZF8w"><span class="b">topology_physical_package_id</span></a><span class="f">(</span><span class="b">cpu</span><span class="f">)</span>    <span class="f">(</span><a href="cpu.c_macros_ref.html#_Y3B1X2RhdGFfMA__"><span class="b">cpu_data</span></a><span class="f">(</span><span class="b">cpu</span><span class="f">)</span><span class="f">.</span><span class="b">phys_proc_id</span><span class="f">)</span>
<a name="124" /><span class="Maybe">     124:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_ref.html#_dG9wb2xvZ3lfY29yZV9pZF8w"><span class="b">topology_core_id</span></a><span class="f">(</span><span class="b">cpu</span><span class="f">)</span>            <span class="f">(</span><a href="cpu.c_macros_ref.html#_Y3B1X2RhdGFfMA__"><span class="b">cpu_data</span></a><span class="f">(</span><span class="b">cpu</span><span class="f">)</span><span class="f">.</span><span class="b">cpu_core_id</span><span class="f">)</span>
<a name="125" /><span class="Maybe">     125:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_ref.html#_dG9wb2xvZ3lfY29yZV9jcHVtYXNrXzA_"><span class="b">topology_core_cpumask</span></a><span class="f">(</span><span class="b">cpu</span><span class="f">)</span>        <span class="f">(</span><a href="cpu.c_macros_ref.html#_cGVyX2NwdV8w"><span class="b">per_cpu</span></a><span class="f">(</span><span class="b">cpu_core_map</span><span class="f">,</span> <span class="b">cpu</span><span class="f">)</span><span class="f">)</span>
<a name="126" /><span class="Maybe">     126:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_ref.html#_dG9wb2xvZ3lfdGhyZWFkX2NwdW1hc2tfMA__"><span class="b">topology_thread_cpumask</span></a><span class="f">(</span><span class="b">cpu</span><span class="f">)</span>        <span class="f">(</span><a href="cpu.c_macros_ref.html#_cGVyX2NwdV8w"><span class="b">per_cpu</span></a><span class="f">(</span><span class="b">cpu_sibling_map</span><span class="f">,</span> <span class="b">cpu</span><span class="f">)</span><span class="f">)</span>
<a name="127" /><span class="Maybe">     127:</span> <span class="f">#</span><span class="n">endif</span>
<a name="128" /><span class="Maybe">     128:</span> 
<a name="129" /><span class="Maybe">     129:</span> <span class="m">static</span> <span class="m">inline</span> <span class="m">void</span> <span class="b">arch_fix_phys_package_id</span><span class="f">(</span><span class="m">int</span> <span class="b">num</span><span class="f">,</span> <a href="cpu.c_macros_ref.html#_dTMyXzA_"><span class="b">u32</span></a> <span class="b">slot</span><span class="f">)</span>
<a name="130" /><span class="Maybe">     130:</span> <span class="f">{</span>
<a name="131" /><span class="Maybe">     131:</span> <span class="f">}</span>
<a name="132" /><span class="Maybe">     132:</span> 
<a name="133" /><span class="Maybe">     133:</span> <span class="m">struct</span> <span class="b">pci_bus</span><span class="f">;</span>
<a name="134" /><span class="Maybe">     134:</span> <span class="m">void</span> <span class="b">x86_pci_root_bus_resources</span><span class="f">(</span><span class="m">int</span> <span class="b">bus</span><span class="f">,</span> <span class="m">struct</span> <span class="b">list_head</span> <span class="f">*</span><span class="b">resources</span><span class="f">)</span><span class="f">;</span>
<a name="135" /><span class="Maybe">     135:</span> 
<a name="136" /><span class="Maybe">     136:</span> <span class="f">#</span><span class="n">ifdef</span> <a href="cpu.c_macros_ref.html#_Q09ORklHX1NNUF8w"><span class="b">CONFIG_SMP</span></a>
<a name="137" /><span class="Maybe">     137:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_bWNfY2FwYWJsZV8w"><span class="b">mc_capable</span></a><span class="f">(</span><span class="f">)</span>    <span class="f">(</span><span class="f">(</span><span class="b">boot_cpu_data</span><span class="f">.</span><span class="b">x86_max_cores</span> <span class="f">&gt;</span> <span class="c">1</span><span class="f">)</span> <span class="f">&amp;&amp;</span> \
<a name="138" /><span class="Maybe">     138:</span>             <span class="f">(</span><span class="b">cpumask_weight</span><span class="f">(</span><span class="b">cpu_core_mask</span><span class="f">(</span><span class="c">0</span><span class="f">)</span><span class="f">)</span> <span class="f">!=</span> <span class="b">nr_cpu_ids</span><span class="f">)</span><span class="f">)</span>
<a name="139" /><span class="Maybe">     139:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_c210X2NhcGFibGVfMA__"><span class="b">smt_capable</span></a><span class="f">(</span><span class="f">)</span>            <span class="f">(</span><span class="b">smp_num_siblings</span> <span class="f">&gt;</span> <span class="c">1</span><span class="f">)</span>
<a name="140" /><span class="Maybe">     140:</span> <span class="f">#</span><span class="n">endif</span>
<a name="141" /><span class="Maybe">     141:</span> 
<a name="142" /><span class="Maybe">     142:</span> <span class="f">#</span><span class="n">ifdef</span> <a href="cpu.c_macros_ref.html#_Q09ORklHX05VTUFfMA__"><span class="b">CONFIG_NUMA</span></a>
<a name="143" /><span class="Maybe">     143:</span> <span class="m">extern</span> <span class="m">int</span> <span class="b">get_mp_bus_to_node</span><span class="f">(</span><span class="m">int</span> <span class="b">busnum</span><span class="f">)</span><span class="f">;</span>
<a name="144" /><span class="Maybe">     144:</span> <span class="m">extern</span> <span class="m">void</span> <span class="b">set_mp_bus_to_node</span><span class="f">(</span><span class="m">int</span> <span class="b">busnum</span><span class="f">,</span> <span class="m">int</span> <span class="b">node</span><span class="f">)</span><span class="f">;</span>
<a name="145" /><span class="False">     145:</span> <span class="f">#</span><span class="n">else</span>
<a name="146" /><span class="False">     146:</span> <span class="m">static</span> <span class="m">inline</span> <span class="m">int</span> <span class="b">get_mp_bus_to_node</span><span class="f">(</span><span class="m">int</span> <span class="b">busnum</span><span class="f">)</span>
<a name="147" /><span class="False">     147:</span> <span class="f">{</span>
<a name="148" /><span class="False">     148:</span>     <span class="m">return</span> <span class="c">0</span><span class="f">;</span>
<a name="149" /><span class="False">     149:</span> <span class="f">}</span>
<a name="150" /><span class="False">     150:</span> <span class="m">static</span> <span class="m">inline</span> <span class="m">void</span> <span class="b">set_mp_bus_to_node</span><span class="f">(</span><span class="m">int</span> <span class="b">busnum</span><span class="f">,</span> <span class="m">int</span> <span class="b">node</span><span class="f">)</span>
<a name="151" /><span class="False">     151:</span> <span class="f">{</span>
<a name="152" /><span class="False">     152:</span> <span class="f">}</span>
<a name="153" /><span class="Maybe">     153:</span> <span class="f">#</span><span class="n">endif</span>
<a name="154" /><span class="Maybe">     154:</span> 
<a name="155" /><span class="True">     155:</span> <span class="f">#</span><span class="n">endif</span> <span class="k">/* _ASM_X86_TOPOLOGY_H */</span>
<a name="156" /><span class="True">     156:</span> </pre>
  </body>
</html>
